package com.hy.service;

import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.hy.Result.ResponseResult;
import com.hy.admin.pojo.Lideshow;
import com.hy.mapper.SlideshowMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

@Service
public class SlideshowServiceImpl implements SlideshowService {
    @Autowired
    private SlideshowMapper slideshowMapper;

    /**
     * APP主页轮播图
     * 查询有效的轮播图数据（状态启用且按排序字段倒序排列）
     * 使用 MyBatis Plus 的 Lambda 查询构造器构建查询条件，获取指定字段的启用状态轮播图数据
     *
     * @return List<Lideshow> 包含图片URL的轮播图实体列表
     */
    @Override
    public ResponseResult list() {

        // 创建 Lambda 查询构造器（类型安全的条件构造）
        LambdaQueryWrapper<Lideshow> queryWrapper = new LambdaQueryWrapper<>();

        // 指定查询字段：仅获取图片URL字段（优化查询性能）
        queryWrapper.select(Lideshow::getImageUrl);

        // 添加状态过滤条件：仅查询状态为启用的记录（1表示启用状态）
        queryWrapper.eq(Lideshow::getStatus, 1);

        // 设置排序规则：按排序字段倒序排列（数值越大显示优先级越高）
        queryWrapper.orderByDesc(Lideshow::getSortOrder);

        // 执行查询并返回结果集（使用 MyBatis Plus 的通用 Mapper 接口）
        List<Lideshow> lideshows = slideshowMapper.selectList(queryWrapper);

        return new ResponseResult(200, "查询成功", lideshows);
    }
}
